package com.xupt.easy.link;

import java.util.HashSet;

/**
 * @author zhaoxin
 * @title: HasCycle141
 * @projectName LeetCode
 * @description: 环形链表
 * @date 2019/12/2 10:45
 */
public class HasCycle141 {


    /**
     * 给定一个链表，判断链表中是否有环。
     *
     * 为了表示给定链表中的环，我们使用整数 pos 来表示链表尾连接到链表中的位置（索引从 0 开始）。 如果 pos 是 -1，则在该链表中没有环。
     *
     * 示例 1：
     *
     * 输入：head = [3,2,0,-4], pos = 1
     * 输出：true
     * 解释：链表中有一个环，其尾部连接到第二个节点。
     * @param head
     * @return
     */
    public boolean hasCycle(ListNode head) {
        HashSet set = new HashSet();
        ListNode cur = head;
        while (cur != null){
            if (set.contains(cur.next)){
                return true;
            }
            set.add(cur);
            cur = cur.next;
        }
        return false;
    }


}
